<?php

class Admin_Model_DbTable_Matricegmv extends Zend_Db_Table {
	protected $_name = 'matricegmv';
	/**
	 Recupererle point de la muraille par son id
	 */
	public function getArbre($idarbre) {
		$idarbre = (int)$idarbre;
		$row = $this->fetchRow('idarbre = ' . $idarbre);
		if (!$row) {
			throw new Exception("Count not find row $idarbre");
		}
		return $row->toArray();    
	}
	
	public function getInfoArbre() {
		$db = Zend_Db::factory('PDO_MYSQL', array ('host' => '127.0.0.1', 'username'
		 => 'root', 'password' => '@dmin2010gmv', 'dbname'   => 'gmv'));
		$select = $db->select()
		->from(array('a' => 'matricegmv'), array(
		'id' => 'a.id', 'i' => 'a.i', 'j' => 'a.j', 'longueur' => 'a.longueur', 'type' => 'a.type',
		'proprietaire' => 'a.proprietaire_idproprietaire',
		'taille' => 'a.taille', 'longitude' => 'a.longitude', 'latitude' => 'a.latitude'))
		->join(array('e' => 'espece'), 'e.idespece = a.espece_idespece')
		->join(array('o' => 'origine'), 'o.idorigine = a.origine_idorigine');
		$rows = $select->query()->fetchAll();
        $arbre = array();$arbre['total'] = count($rows);$arbre['rows'] = $rows;
		return $arbre;    
	}
	
	public function addArbre($longueur,$taille,$matricebr,$proprietaire,$origine,$espece,$latitude,$longitude) {
		$data = array(
			'longueur' => $longueur,
			'taille' => $taille,
			'idmatricebr' => $matricebr,
			'proprietaire_idproprietaire' => $proprietaire,
			'origine_idorigine' => $origine,
			'espece_idespece' => $espece,
			'latitude' => $latitude,
			'longitude' => $longitude,
		);
		$this->insert($data);
	}
	public function addArbreIJ($i,$j) {
		$data = array(
			'longueur' => "",
			'taille' => "",
			'terrain_idterrain' => "",
			'proprietaire_idproprietaire' => "",
			'origine_idorigine' => "",
			'espece_idespece' => "",
			'latitude' => "",
			'longitude' => "",
			'i' => $i,
			'j' => $j,
		);
		$this->insert($data);
	}
	
	public function updateArbre($idarbre, $longueur,$taille,$terrain,$proprietaire,$origine,$espece,$latitude,$longitude) {
		$data = array(
			'longueur' => $longueur,
			'taille' => $taille,
			'terrain_idterrain' => $terrain,
			'proprietaire_idproprietaire' => $proprietaire,
			'origine_idorigine' => $origine,
			'espece_idespece' => $espece,
			'latitude' => $latitude,
			'longitude' => $longitude,
		);
		$this->update($data, 'idarbre = '. (int)$idarbre);
	}
	
	
	function deleteArbre($idarbre) {
		$this->delete ( 'idarbre =' . ( int ) $idarbre );
	}
	/**
	 * 
	 * @return  
	 */
	public function getAllArbre() {    
		$all = $this->fetchAll();
		$arbres = array();
		$arbres['total'] = count($all->toArray());
		$arbres['rows'] = $all->toArray();
		return $arbres ;
	}    
	
	public function getLatitude($idarbre) {    
		$select = $this -> select() -> from('arbre',array('latitude'))
			-> where('idarbre = ? ',$idarbre);
		
		$result = $this -> fetchRow($select);
		return $result->toArray() ;
	}   
	
	public function getLongitude($idarbre) {    
		$select = $this -> select() -> from('arbre',array('longitude'))
			-> where('idarbre = ? ',$idarbre);
		
		$result = $this -> fetchRow($select);
		return $result->toArray() ;
	}   
	
	public function getCoordonneee($imin,$imax,$jmin,$jmax) {    
		$select = $this ->select()
			-> from('arbre')
			-> where('i > ?', $imin)
			-> where('i <= ?', $imax)
			-> where('j > ?', $jmin)
			-> where('j <= ?', $jmax);
		
		$result = $this -> fetchAll($select);
		$res = array();
		$i = 0;
		foreach ($result as $row) {
			$res[$i] = array();
			$res[$i] = $row->toArray();
			$res[$i]["type"] = "arbre";
			$i++;
		}
		return $res;
	}
	
}
